#if !defined(__APP_MESSAGE)
#define __APP_MESSAGE

// 定义消息类型的枚举
typedef enum
{
    CONN_NONE,
    CONN_BT,
    CONN_LORA,
    CONN_WIFI
} ConnectionType;

// 定义消息结构体
typedef struct
{
    ConnectionType conn_type; // 连接类型
    char *payload; // id和msg
    int id_len; // id长度
    int msg_len; // msg长度
} Message;

/**
 * @brief 根据消息二进制数据初始化创建消息结构体
 */
Message *app_message_initByBinary(char *binary, int len);

/**
 * @brief 根据消息json数据初始化创建消息结构体
 */
Message *app_message_initByJson(char *json);

/**
 * @brief 将消息结构体转换为json数据
 */
int app_message_toJson(Message *message, char *json, int len);

/**
 * @brief 将消息结构体转换为二进制数据
 */
int app_message_toBinary(Message *message, char *binary, int len);


/**
 * @brief 释放消息
 */
void app_message_free(Message *message);


#endif // __APP_MESSAGE
